package com.anlu.pattern.create.prototype;

/**
 * 原型模式：原型模式用于创建重复的对象，实现对象的拷贝。这种模式类似于创建型模式，提供了创建对象的最佳模式。
 *
 * 这种模式存在的应用场景在于，能够复制当前对象，实现对象数据的克隆。
 * 比如：如果一个对象的数据需要经过较高代价的数据库操作，采用原型模式能够较好的缓存当前对象，减少数据库的访问量。
 */
public class PrototypeTest {
    public static void main(String[] args) {
        Sheep old = new Sheep(2,"雄性",new Admin(25,"女"));
        System.out.println(old.toString());
        Sheep current = old.clone();
        System.out.println(current.toString());

        //对克隆羊处理
        current.setAge(1);
        current.setSex("雌性");
        current.getAdmin().setAge(34);
        current.getAdmin().setSex("男");
        System.out.println(old.toString());
        System.out.println(current.toString());

    }
}
